A mobile operating system is the operating system that is executed by a mobile device such as a smartphone, tablet, or personal digital assistant (PDA). Existing mobile OSs include Apple® iOS® offered by Apple, Inc. located in Cupertino, Calif.; Android® offered by Google Inc. located in Mountain View, Calif.; and Windows Phone 8® offered by Microsoft Corporation located in Redmond, Wash. Multiple mobile OSs can be installed on the same mobile device at the same time so that features of one installed mobile OS can be provided to the mobile device at one time and other features of another installed mobile OS can be provided at another time. Multiple OSs can execute on the same mobile device through the use of a Virtual Machine Monitor (VMM) (i.e., hypervisor) or OS switching. A VMM provides a virtual machine for each OS. OS switching exploits rapid suspend and resume capabilities of OSs to switch between different mobile OSs installed on the same mobile device. One mobile OS being switched out goes through a suspend process to enter a sleep mode, which saves critical portions of the system's state to system memory, but the hardware is not turned off. Instead, OS switching software boots or resumes a different mobile OS installed on the mobile device.
In a multi-OS mobile environment, one OS is not aware of the presence of another OS. Unlike a desktop computer in which disk space is sufficiently large to have separate partitions for each OS, a multi-OS mobile computing device has limited internal and external memory, and therefore the multiple OSs in the mobile computing device share space with each other. This shared space on the multi-OS mobile computing device is used to store OS-specific information, OS-specific sensitive data structures, and/or OS-specific user data. Executing certain utilities such as a file system data consistency check (e.g., the CHKDSK command) or an anti-virus tool on a currently running OS in the multi-OS mobile computing device scans data in memory to determine data that needs to be cleaned up, but the scan does not recognize data as being owned by another, non-running OS in the mobile computing device. By not recognizing certain data as being owned by the other OS, the utility mistakenly interprets that data as being unused data regions, bad data, or an unrecognized virus, and therefore may recommend that data be cleaned up (i.e., removed) or changed. If a user attempts to view the data that is recommended for cleanup, the data may appear to the user to be bad data or unrecognizable because the data, whose format is compatible with the other OS, may not be in user-readable form in the currently running OS. The data owned by the other OS can be removed by the currently running OS because each OS on the multi-OS mobile computing device has rights to control usage of all of the memory space. Locks generated by block locking or password-based block locking cannot protect against an unintended removal of data owned by the other OS because whichever OS that is currently running OS has master control over these locks. If the data owned by the other OS is subsequently removed based on the recommendation, and if the removed data is important for the operation of the other OS, then the user may not be able to run the other OS on the mobile computing device due to data corruption. In the multi-OS mobile environment, the mobile device running one of the multiple OSs has no way to differentiate between (1) malicious data, data not owned by any OS, or bad data and (2) data owned by another OS that needs to be protected from removal or change.